﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Urgencias.Controlador;
using Urgencias.Modelo;

namespace Urgencias.Vista
{
    public partial class ModificarPacienteUC : UserControl
    {
        Paciente p;
        //Conexion con = new Conexion();

        public ModificarPacienteUC()
        {
            InitializeComponent();
        }

        public void reestablecer()
        {
            this.rutBox.ResetText();
            this.nombreTB.ResetText();
            this.apMaternoTB.ResetText();
            this.ApPaternoTB.ResetText();
            this.telTB.ResetText();
            this.previsionTB.ResetText();
            this.dire1TB.ResetText();
            this.dire2TB.ResetText();
            this.fechaNacimientoDP.Value = DateTime.Today;
            //textBox9.ResetText();
        }

        private void rutBox_Leave(object sender, EventArgs e)
        {

            string rut = rutBox.Text;

            validarRut(rut);
            //else


        }

        private void validarRut(string rut)
        {
            if (rut != "  .   .   -")
            {
                if (!p.validarDigito(rut))
                {
                    MessageBox.Show(Properties.Resources.ErrorRUT);
                    rutBox.Focus();
                }
            }
        }


        private void guardarBTN_Click(object sender, EventArgs e)
        {
           
            /*string nombre, apellidoP, apellidoM, rut, direccion, prevision;
            int telefono;
            char sexo;*/
            //p = new Paciente();
            string Nombre = nombreTB.Text;
            string ApellidoPaterno = ApPaternoTB.Text;
            string ApellidoMaterno = apMaternoTB.Text;
            //edad = int.Parse(textBox4.Text);
            DateTime FechaNacimiento = fechaNacimientoDP.Value;

            string Rut = rutBox.Text;

            char Sexo;
            if (mascRB.Checked)
                Sexo = 'M';
            else
                Sexo = 'F';

            string TelefonoPaciente = telTB.Text;
            string DireccionPaciente = dire1TB.Text +" "+ dire2TB.Text;
            string PrevisionPaciente = previsionTB.Text;
            //prioridad = textBox9.Text;

            //con.insertar(nombre, apellidoP, apellidoM, edad, rut, telefono, direccion, prevision, prioridad);
            if (PacienteControlador.Instance.modificarPaciente(Rut,Nombre,ApellidoPaterno,ApellidoMaterno,FechaNacimiento,Sexo,TelefonoPaciente,DireccionPaciente,PrevisionPaciente))
            {
                reestablecer();
                MessageBox.Show(Properties.Resources.PacienteModificar);
            }
            else
                MessageBox.Show(Properties.Resources.PacienteModificarError);
        }

        private void negarEnabled()
        {
            this.rutBox.Enabled = !this.rutBox.Enabled;
            this.sexoGB.Enabled = !this.sexoGB.Enabled;
            this.nombreTB.Enabled = !this.nombreTB.Enabled;
            this.ApPaternoTB.Enabled = !this.ApPaternoTB.Enabled;
            this.apMaternoTB.Enabled = !this.apMaternoTB.Enabled;
            this.fechaNacimientoDP.Enabled = !this.fechaNacimientoDP.Enabled;
            this.telTB.Enabled = !this.telTB.Enabled;
            this.dire1TB.Enabled = !this.dire1TB.Enabled;
            this.dire2TB.Enabled = !this.dire2TB.Enabled;
            this.previsionTB.Enabled = !this.previsionTB.Enabled;
            this.limpiarBTN.Enabled = !this.limpiarBTN.Enabled;
            this.buscarBTN.Enabled = !this.buscarBTN.Enabled;
        }

        private void cancelarBTN_Click(object sender, EventArgs e)
        {
            Principal.Instance.limpiar();
        }

        private void buscarBTN_Click(object sender, EventArgs e)
        {
            p = PacienteControlador.Instance.buscarPaciente(rutBox.Text);

            if (p == null)
            {
                MessageBox.Show(Properties.Resources.PacienteBusquedaError);
                rutBox.ResetText();
                rutBox.Focus();
            }
            else
            {
                negarEnabled();
                this.nombreTB.Text = p.Nombre;
                if (p.Sexo == 'M')
                    mascRB.Checked = true;
                else
                    femRB.Checked = true;

                this.ApPaternoTB.Text = p.ApellidoPaterno;
                this.apMaternoTB.Text = p.ApellidoMaterno;
                this.fechaNacimientoDP.Value = p.FechaNacimiento;
                this.telTB.Text = p.TelefonoPaciente;
                this.dire1TB.Text = p.DireccionPaciente;
                this.previsionTB.Text = p.PrevisionPaciente;
            }
        }

        private void limpiarBTN_Click(object sender, EventArgs e)
        {
            negarEnabled();
            reestablecer();
            rutBox.ResetText();
        }

        private void ModificarPacienteUC_Load(object sender, EventArgs e)
        {
            this.fechaNacimientoDP.MaxDate = DateTime.Today;
        }
    }
}
